package com.Web.controller;


import com.Web.dao.FanjuDao;
import com.Web.entity.Fanju;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import static jdk.nashorn.internal.objects.NativeDebug.map;


//前后端交互
@RestController


@RequestMapping("/fanju")//请求父路径
public class FanjuController {
    @Autowired//将FanjuDao注入文本中
    FanjuDao fanjuDao;

    //传输fanju数据库数据给前端的方法
    @GetMapping("/index") //localhost:8086/Fanju/index
    public HashMap<String,Object> list(){
        HashMap<String,Object> map = new HashMap<>();
        //查看所有数据
        List<Fanju> list = fanjuDao.selectList(null);
        map.put("data",list);
        map.put("code",200);
        return map;
    }

    //读取数据，进行判断，传输数据返回给前端
    @GetMapping("/info")
    public HashMap<String,Object> setInfo(Fanju fanju){
        //声明一个hashMop,用于存储响应给前端数据
        HashMap<String, Object> map = new HashMap<>();
        //钩造查询条件
        QueryWrapper<Fanju> wrapper = new QueryWrapper<>();
        wrapper.eq("id",fanju.getId());//查询id
        List<Fanju> list = fanjuDao.selectList(wrapper);
        map.put("data",list);
        map.put("code",200);
        return map;
    }


    //接受传入数据，查询数据，返回给前端
    @GetMapping("/fenlei")  //localhost:8086/fanju/fenlei
    public HashMap<String,Object> Fenlei(String str){  //如： 热血   传入String类型
        HashMap<String, Object> map = new HashMap<>();
        //查询所有数据
        List<Fanju> list = fanjuDao.selectList(null);
        //定义变量存储返回值
        List<Fanju> data = new ArrayList<>();
        //判断前两百条数据
        for (int i = 0; i < 200; i++) {
            //分割字符串
            String[] split = list.get(i).getFanjuType1().split("&");
            for (String s : split) {
                //如果字段相等，追加到data泛型，返回给前端
                if(s.equals(str)){
                    //添加数据
                   data.add(list.get(i));
                }
            }
        }
        map.put("data",data);
        map.put("code",200);
        return map;
    }

    //接受传入数据，查询搜索数据，返回给前端
    @GetMapping("/sousuo")
    public HashMap<String,Object> select(String str){
        HashMap<String, Object> map = new HashMap<>();
        String str1 = "%"+str+"%";  //周围添加一个或者多个字符
        //构造查询条件
        QueryWrapper<Fanju> wrapper = new QueryWrapper<>();
        //正则表达式,进行模糊搜索
        wrapper.like("fanju_title",str1);
        //查询所有数据
        List<Fanju> list = fanjuDao.selectList(wrapper);
        if (list !=null){
            map.put("data",list);
            map.put("code",200);
            return map;
        }else {
            map.put("map", "数据为空");
            map.put("code", 500);
            return map;
        }
    }
}
